package com.ruoyi.ftrl.common;

import com.ruoyi.ftrl.domain.HeatInfo;

import java.math.BigDecimal;
import java.util.Date;

public class CodeUtil {
    public static HeatInfo HexToNew(String text) {
        HeatInfo hot =new HeatInfo();
        //十六进制转换十进制
        //Integer.parseInt("",16);
        String texttht="6850005000684102370100020ce000004003a1020000100112111143470723000000ca4114aec9410000000000c81346000000008fc2f53cd7a3703f64008000000000000000000080bf000080bf000080bf000000008c16";

        //帧头
//        String head = text.substring(0, 36);
//        hot.setHead(head);

        //批号
        String substring=   text.substring(42,44)+ text.substring(40,42)+   text.substring(38,40)+   text.substring(36,38);
        hot.setBatch(substring);

        //时间
        String time= text.substring(52,54)+ text.substring(50,52)+   text.substring(48,50)+   text.substring(46,48)+   text.substring(44,46);
//        String s1 = ByteUtil.HextoBcd(time);

        hot.setTime(new Date());

        //表编号
        String code= text.substring(62,64)+ text.substring(60,62)+   text.substring(58,60)+   text.substring(56,58)+   text.substring(54,56);
        Integer i = Integer.parseInt(code);
        hot.setCode(i.toString());

        //进水温度
        String jin= text.substring(70,72)+ text.substring(68,70)+   text.substring(66,68)+   text.substring(64,66);
        String s = ByteUtil.hexToFloat(jin);
        hot.setInletTemp(new BigDecimal(s));
        //回水温度
        String hui= text.substring(78,80)+ text.substring(76,78)+   text.substring(74,76)+   text.substring(72,74);
        String s1 = ByteUtil.hexToFloat(hui);
        hot.setOutTemp(new BigDecimal(s1));
        //热功率
        String re= text.substring(86,88)+
                text.substring(84,86)+
                text.substring(82,84)+
                text.substring(80,82);
        String s3 = ByteUtil.hexToFloat(re);
        hot.setPower(s3);

        //工作时间
        String work= text.substring(94,96)+
                text.substring(92,94)+
                text.substring(90,92)+
                text.substring(88,90);
        String s2 = ByteUtil.hexToFloat(work);
        hot.setCountWork(s2);

//        //瞬时流量
        String liuliang= text.substring(102,104)+
                text.substring(100,102)+
                text.substring(98,100)+
                text.substring(96,98);
        String s4 = ByteUtil.hexToFloat(liuliang);
        hot.setFlow(s4);

//        //累计流量
        String leiji= text.substring(110,112)+
                text.substring(108,110)+
                text.substring(106,108)+
                text.substring(104,106);
        String s5 = ByteUtil.hexToFloat(leiji);
        hot.setCountFlow(s5);

//        //累计热量
        String reliang= text.substring(118,120)+
                text.substring(116,118)+
                text.substring(114,116)+
                text.substring(112,114);
        String s6 = ByteUtil.hexToFloat(reliang);
        hot.setCount(s6);

        //修正系数
        String xishu=text.substring(122,124)+text.substring(120,122);
        int i1 = Integer.parseInt(xishu, 16);
        BigDecimal bigDecimal=new BigDecimal(i1);
        BigDecimal divide = bigDecimal.divide(new BigDecimal(100),2,2);
        hot.setCorrectionFactor(divide.toString());

//
        return hot;

    }
}
